// TODO: java版临时注释 默认值优先级低

// package com.inspur.edp.bef.dtgenerator.core.beActionAssembler.defaultValue;
//
//
// import com.inspur.edp.bef.bizentity.GspBizEntityObject;
// import com.inspur.edp.bef.bizentity.GspBusinessEntity;
// import com.inspur.edp.bef.dtgenerator.DotNetToJavaStringHelper;
// import com.inspur.edp.bef.dtgenerator.core.BefCoreGenCtx;
// import com.inspur.edp.caf.generator.property.ClassPropertyGenerator;
// import com.inspur.edp.cef.designtime.api.element.GspElementDataType;
// import com.inspur.edp.das.commonmodel.IGspCommonElement;
// import java.util.ArrayList;
// import org.eclipse.jdt.core.dom.Modifier.ModifierKeyword;
//
/// **
// 默认值存储字典属性生成类（所有节点的默认值设置信息）
//
// */
// public class DefaultValueDicProGenerator extends ClassPropertyGenerator
// {
//	private BefCoreGenCtx coreGenCtx;
//	public DefaultValueDicProGenerator(BefCoreGenCtx coreGenCtx)
//	{
//		this.coreGenCtx = coreGenCtx;
//	}
//
//	@Override
//	protected java.util.ArrayList<ModifierKeyword>  getAccessModifier() { return new
// java.util.ArrayList<ModifierKeyword>(java.util.Arrays.asList(new ModifierKeyword[] {
// ModifierKeyword.PUBLIC_KEYWORD })); }
//
//
//	@Override
//	protected String  getPropertyName() { return "DefaultValues"; }
//
//
//	@Override
//	protected java.lang.Class  getPropertyType() { return
// java.util.HashMap<String,java.util.HashMap<String,String>>.class; }
//
//
//	@Override
//	protected boolean  hasSetMethod() { return false; }
//
//
//	@Override
//	protected boolean  hasGetMethod() { return true; }
//
//	@Override
//	protected Block  buildGetMethodBody()
//	{
//
//	  return
// SyntaxFactory.Block(SyntaxFactory.<StatementSyntax>SingletonList(SyntaxFactory.ReturnStatement(SyntaxFactory.ObjectCreationExpression(TypeUtils.GetTypeSyntax(java.util.HashMap<String,java.util.HashMap<String,String>>.class)).WithInitializer(SyntaxFactory.InitializerExpression(SyntaxKind.CollectionInitializerExpression, SyntaxFactory.<ExpressionSyntax>SeparatedList(GetOuterExpress()))))));
//	}
//
//	private java.util.HashMap<String, java.util.HashMap<String, String>> GetContent()
//	{
//		GspBusinessEntity be = coreGenCtx.BE;
//		ArrayList<GspBizEntityObject> nodes = be.getAllNodes();
//		java.util.HashMap<String, java.util.HashMap<String, String>> dic = new java.util.HashMap<String,
// java.util.HashMap<String, String>>();
//		for(GspBizEntityObject node : nodes)
//		{
//			java.util.HashMap<String, String> v = new java.util.HashMap<String, String>();
//			ArrayList<IGspCommonElement> elements = node.getAllElementList(false);
//			for(IGspCommonElement element : elements)
//			{
//				if (element.getIsUdt())
//				{
//					continue;
//				}
//				if (!DotNetToJavaStringHelper.isNullOrEmpty(element.DefaultValue))
//				{
//					GspElementDataType dataType = element.getMDataType();
//					String defaultValue = element.DefaultValue;
//					Object result = null;
//					switch(dataType)
//					{
//						case String:
//							result = defaultValue;
//							break;
//						case Text:
//							result = defaultValue;
//							break;
//						case Integer:
//							result = Integer.parseInt(defaultValue);
//							break;
//						case Decimal:
//							result = Convert.ToDecimal(defaultValue);
//							break;
//						case DateTime:
//							result = Convert.ToDateTime(defaultValue);
//							break;
//						case Date:
//							result = Convert.ToDateTime(defaultValue);
//							break;
//						case Boolean:
//							result = Boolean.parseBoolean(defaultValue);
//							break;
//					}
//					v.put(element.LabelID, element.DefaultValue);
//				}
//			}
//			if (node.IsRootNode)
//			{
//				dic.put("RootNode",v);
//			}
//			else
//			{
//				dic.put(node.getCode(), v);
//			}
//		}
//		return dic;
//	}
//
//	private SyntaxNodeOrToken[] GetOuterExpress()
//	{
//		java.util.HashMap<String, java.util.HashMap<String, String>> dic = GetContent();
//		java.util.ArrayList<SyntaxNodeOrToken> result = new java.util.ArrayList<SyntaxNodeOrToken>();
//		for (var codeName : dic.keySet())
//		{
//			var token1 =
// SyntaxFactory.InitializerExpression(SyntaxKind.ComplexElementInitializerExpression,
// SyntaxFactory.<ExpressionSyntax>SeparatedList(GetInnerExpress(codeName, dic[codeName])));
//			var token2 = SyntaxFactory.Token(SyntaxKind.CommaToken);
//			result.add(token1);
//			result.add(token2);
//		}
//		if (result.isEmpty())
//		{
//			return result.toArray(new SyntaxNodeOrToken[]{});
//		}
//		result.remove(result.size() - 1);
//		return result.toArray(new SyntaxNodeOrToken[]{});
//	}
//
//	private SyntaxNodeOrToken[] GetInnerExpress(String nodeCode, java.util.HashMap<String,String>
// dic)
//	{
//
//		return new SyntaxNodeOrToken[]{
// SyntaxFactory.LiteralExpression(SyntaxKind.StringLiteralExpression,
// SyntaxFactory.Literal(nodeCode)), SyntaxFactory.Token(SyntaxKind.CommaToken),
// SyntaxFactory.ObjectCreationExpression(TypeUtils.GetTypeSyntax(java.util.HashMap<String,String>.class)).WithInitializer(SyntaxFactory.InitializerExpression(SyntaxKind.CollectionInitializerExpression, SyntaxFactory.<ExpressionSyntax>SeparatedList(GetKVExpress(dic))))};
//	}
//
//	private SyntaxNodeOrToken[] GetKVExpress(java.util.HashMap<String,String> dic)
//	{
//		java.util.ArrayList<SyntaxNodeOrToken> result = new java.util.ArrayList<SyntaxNodeOrToken>();
//		for (var key : dic.keySet())
//		{
//			var token1 =
// SyntaxFactory.InitializerExpression(SyntaxKind.ComplexElementInitializerExpression,
// SyntaxFactory.<ExpressionSyntax>SeparatedList(new SyntaxNodeOrToken[]{
// SyntaxFactory.LiteralExpression(SyntaxKind.StringLiteralExpression, SyntaxFactory.Literal(key)),
// SyntaxFactory.Token(SyntaxKind.CommaToken),
// SyntaxFactory.LiteralExpression(SyntaxKind.StringLiteralExpression,
// SyntaxFactory.Literal(dic.get(key)))}));
//			var token2 = SyntaxFactory.Token(SyntaxKind.CommaToken);
//			result.add(token1);
//			result.add(token2);
//		}
//		if (result.isEmpty())
//		{
//			return result.toArray(new SyntaxNodeOrToken[]{});
//		}
//	   result.remove(result.size() - 1);
//		return result.toArray(new SyntaxNodeOrToken[]{});
//
//	}
//
//
// }
